En el VCL viene una referencia a un articulo sobre antidebug, si no es el mismo te agradecer¡a que, si lo consigues, lo pongas por aqu¡. Como veo que buscais t‚cnicas anti-debugger, yo tengo algunos, he aqu¡ un resumen de algunas t‚cnicas y metodos para evitarlas. :-)) ===8<========================================== 1. Preventive actions: ---------------------- 1.1. Interrupt disable: 1.1.1. Hardware masking of interrupt: Deshabiltar la IRQ1 del teclado (port 21:=port 21 or 2) POR QU NO: in£til contra Soft-ICE. 1.1.2. Software masking of interrupt: Poner vectores de interrupci¢n que no usas a cero (ej, int 3 y dem s). 1.1.3. Vector manipulation Usar los vectores int 01 e int 03 para datos del programa (ej, para una rutina de desencriptaci¢n). 1.1.4. Interrupt replacement Copiar vectores de interrupci¢n que usas (ej, int 16 ¢ int 21) a los vectores int 01 e int 03 y usar ‚stos en lugar de aquellos. (adem s el que int 03 sea un c¢digo de un s¢lo byte, "cc", hace que sea dif¡cil sustituirlo por la int xx original, de dos bytes "cd xx"). POR QU NO: A los depuradores V86 no les afecta. 1.2. Time watch: Poner un bucle que espera a que cambie el contador de tiempo del DOS, "util contra programas como el TD que deshabilitan todas las interrupciones salvo cuando se est  ejecutando el programa" "Sirve contra RUN, no TRACE". (mi no comprender :-? :-?) POR QU NO: Cuando se "cuelga" en el bucle, interrumpes, ves lo que pasa, y machacas el bucle con NOPs. 1.3. Fool the debugger: Saltar dentro del c¢digo de una instrucci¢n que a su vez contiene la instrucci¢n que quieres ejecutar: 104: eb 02 jmp 108 106: c6 06 e6 21 00 mov byte ptr [21e6],90 ( 108: e6 21 90 out 21, al / nop ) POR QU NO: le dices que te desensamble a partir de cs:ip. 1.4. Check CPU Flags: "Bueno contra depuradores en modo real." Pones la TF (bit ocho de flags) a 0 en un punto del programa y luego la compruebas en otro punto. Si est  a 1 est s bajo un depurador. POR QU NO: in£til en V86 1.5. Cause debugger to stop execution: Espolvorear int 3 en el c¢digo, sobre todo dentro de bucles. POR QU NO: Es f cil pisar la int 03 con un NOP. A muchos depuradores se les puede indicar que no paren ante una int 03. 1.6. Halt computer using stack: Apuntar ss:sp a un trozo de c¢digo que no utiliza la pila. Si se depurando, el depurador que no utilice su propia pila machacar  el c¢digo. POR QU NO: Los depuradores s¡ utilizan su propia pila. 1.7. Halt TD386 V8086 mode: TD386 no usa int 0 para la divisi¢n por cero. TD386 detecta un fallo de divisi¢n y aborta el programa, mientras que sin TD386 basta con apuntar la int 0 a la instrucci¢n siguiente a la divisi¢n por cero para recuperar el control. POR QU NO: No es verdad. Eso no le hace nada al TD386. 1.8. Halt any V8086 process: Apuntar el vector int 0d al c¢digo y causar una excepci¢n de protecci¢n. El programa funcionar  en modo real, pero no en V8086. POR QU NO: Es muy f cil cambiar el c¢digo ilegal y adem s te cargas la compatibilidad con muchos sistemas. 2. Self-modifying code: ----------------------- 2.1. Encryptive/decryptive algorithm: Desencriptas un c¢digo antes de ejecutarlo. Si el depurador ha metido un byte int 03 al desencriptarlo se cambiar  por basura. 100 mov bx, 0971 103 mov di, 0110 106 xchg ax,cx 107 xchg ax,cx 108 xor byte ptr [cs:di],97 10c inc di 10d dec bx 10e jnz 106 110 07 pop es ; cambiar  a 90 NOP 111 pop es 2.2. Self-modifying code: 2.2.1. Simple self-modification: Modificar el c¢digo que vas a ejecutar para borrar los int 03 que ponga el depurador: 100 call 0107 ; queremos saltarnos esta subrutina 103 cd 20 int 20 ; aqu¡ el depurador pone int 3 105 int 21 107 mov [word ptr 103],4cb4 ; "mov ah,4c" 10d ret POR QU NO: Depuradores V86 te dejan usar breakpoints hardware, sin utilizar int 03. (Tanto para 2.1 como para 2.2.1) 2.2.2. The Running Line (self-decrypting): < Este lo puse antes :-) > Cr‚ditos: ANTIDEPURADOR: Anti Debugging Tricks By: Inbar Raz Assistance by Eden Shochat and Yossi Gottlieb Release number 5 - - - - ANTIANTIDEPURADOR ("POR QU NO"): Sun 24 Jan 93 By: Michael Forrest Hi. Here's release 1 of the Anti-Anti Debugging Tricks article.